const toastError = Vue.prototype.$error

function request(url, data, method, config = {}) {
  return axios.request({
    baseURL: '', // 基础地质
    url,
    method,
    data: method === 'GET' ? null : data,
    params: method === 'GET' ? data : null, // get请求不携带data，params放在url上
    timeout: 10000, // 超时实景
    ...config, // 用户自定义配置，可以覆盖前面的配置
  })
    .then(response => response.data)
    .catch(err => {
      console.log(err)
      toastError('请求错误')
      return Promise.reject(err)
    })
}

/**
 * api请求方式
 * @param {String} url
 * @param {Any} params
 * @param {Object} config
 * @returns
 */
export function GET(url, params, config) {
  return request(
    url,
    params,
    'GET',
    config,
  )
}

export function POST(url, data, config) {
  return request(
    url,
    data,
    'POST',
    config,
  )
}

export function PUT(url, data, config) {
  return request(
    url,
    data,
    'PUT',
    config,
  )
}

export function DELETE(url, config) {
  return request(
    url,
    'DELETE',
    config,
  )
}

/**
 * 文件上传
 */
